/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestion;

import com.mysql.jdbc.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import negocio.Usuario;
import operacionesDB.AbstractDB;

/**
 *
 * @author David
 */
public class DBGestionUsuario extends AbstractDB {

    PreparedStatement ps;
    ResultSet rs;

    public ResultSet bUsuariosID(int id) {
        rs = null;
        ps = null;
        try {
            ps = (PreparedStatement) con.prepareStatement("call buscarIdUsuario(?)");
            ps.setInt(1, id);
            rs = ps.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;
    }

    public ResultSet eUsuariosID(int id) {
        rs = null;
        ps = null;
        try {
            ps = (PreparedStatement) con.prepareStatement("call eliminarUsuario(?)");
            ps.setInt(1, id);
            rs = ps.executeQuery();
            if (ps.getUpdateCount() == 1) {
                System.out.println("La eliminación fue exitosa!!!");
            } else if (ps.getUpdateCount() == 0) {
                System.out.println("El usuario no existía o no fue realizada la eliminación");
            }
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;
    }

    public void mUsuarios(Usuario u) {
        rs = null;
        try {
            ps = (PreparedStatement) con.prepareStatement("call modificarUsuario(?,?,?,?)");
            ps.setInt(4, u.getId());
            ps.setString(1, u.getNombre());
            ps.setString(2, u.getApellido());
            ps.setString(3, u.getTelefono());
            rs = ps.executeQuery();
            if (ps.getUpdateCount() == 1) {
                System.out.println("La modificacion fue exitosa!!!");
            } else if (ps.getUpdateCount() == 0) {
                System.out.println("No fue realizada la modificación");
            }
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void mFotoUs(Usuario u) {
        rs = null;
        try {
            System.out.println("hola");
            ps = (PreparedStatement) con.prepareStatement("call modificarFotoUs(?,?)");
            ps.setString(1, u.getFoto());
            ps.setInt(2, u.getId());
            rs = ps.executeQuery();
            if (ps.getUpdateCount() == 1) {
                System.out.println("La modificacion fue exitosa!!!");
            } else if (ps.getUpdateCount() == 0) {
                System.out.println("No fue realizada la modificación");
            }
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public ResultSet mosUsuarios() {
        rs = null;
        try {
            ps = (PreparedStatement) con.prepareStatement("call mostrarTodosUsuarios");
            rs = ps.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;
    }

    public void nueUsarios(Usuario u) {
        rs = null;
        try {
            ps = (PreparedStatement) con.prepareStatement("call nuevoUsuario(?,?,?,?,?)");
            ps.setInt(1, u.getId());
            ps.setString(2, u.getNombre());
            ps.setString(3, u.getApellido());
            ps.setString(4, u.getTelefono());
            ps.setString(5, u.getFoto());
            ps.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public int maxId() {
        rs = null;
        int d = 0;
        try {
            ps = (PreparedStatement) con.prepareStatement("call maxIdUs");
            rs = ps.executeQuery();
            while (rs.next() == true) {
                d = rs.getInt(1);
            }
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return d;
    }public int minId() {
        rs = null;
        int d = 0;
        try {
            ps = (PreparedStatement) con.prepareStatement("call minId");
            rs = ps.executeQuery();
            while (rs.next() == true) {
                d = rs.getInt(1);
            }
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return d;
    }

    public int countUs() {
        rs = null;
        int d = 0;
        try {
            ps = (PreparedStatement) con.prepareStatement("call countUs");
            rs = ps.executeQuery();
            while (rs.next() == true) {
                d = rs.getInt(1);
            }
        } catch (SQLException ex) {
            Logger.getLogger(DBGestionUsuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return d;
    }
    
    
}
